// pages/history/history.js
const fetchSev = require('../../utils/util.js').fetchSev;
const orderListUrl = require('../../config.js').orderListUrl;

const formatTime = require('../../utils/util.js').formatTime;

const app = getApp();

Page({

  /**
   * 页面的初始数据
   */
  data: {
    orderList: [],   // 订单列表
    filterPicker: [
      { name: '一个月内', value: '1' }, { name: '三个月内', value: '3' }, 
      { name: '半年内', value: '6' }, { name: '一年内', value: '12' }
    ],
    pickerIndex: 0,
    filter: {
      // unit: '月',
      // number: '1',
      page: 1,
      pagesize: 10,
      status: '',
      create_time_lte: '',
      create_time_gte: ''
    },

    orderStatus: 0,    // 五种订单状态
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
  
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 页面重置
    this.setData({orderList: []});
    this.setData({ pickerIndex: 0});
    this._updateFilter('page', 1);
    this._updateFilter('create_time_lte', '');
    this._updateFilter('create_time_gte', '');

    // 五种订单类型： 0-全部  1-待反馈  2-待确认  3-已完成  4-已取消
    let status = app.globalData.orderType;
    this.setData({ orderStatus: status });
    switch(status) {
      case '0':
        this._updateFilter('status', '');
        break;
      case '1':
        this._updateFilter('status', 1);
        break;
      case '2':
        this._updateFilter('status', 2);
        break;
      case '3':
        this._updateFilter('status', 3);
        break;
      case '4':
        this._updateFilter('status', 9);
        break;
    }
    // 获取订单列表 
    this._getOrderList();
  },

  // 获取订单列表
  _getOrderList: function() {
    wx.showLoading({
      title: '加载中',
    });
    // 筛选条件
    const filter = this.data.filter;
    console.log('查询参数', filter);
    fetchSev(orderListUrl, 'GET', filter, function(res) {
      if (!res || res.length == 0) {
        wx.showToast({
          title: '数据已加载完毕',
          icon: 'none',
          duration: 2000
        });
        return;
      }
      const resArr = res || [];
      let arr = this.data.orderList;
      // 把结果追加到orderList中
      arr = arr.concat(resArr);
      this.setData({orderList: arr});
      wx.hideLoading();
      console.log('订单列表', this.data.orderList);
    }.bind(this));
  },

  // 更新filter条件
  _updateFilter: function(k, v) {
    let filter = this.data.filter;
    filter[k] = v;
    this.setData({filter, filter});
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
  
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
  
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
  
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    let page = parseInt(this.data.filter.page);
    page = page + 1;
    this._updateFilter('page',page);
    this._getOrderList();
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
  
  },


  // 查看订单详情
  _skipToDetail: function(e) {
    const curHistoryOrder = e.currentTarget.dataset.item;
    // 当前一个历史订单
    app.globalData.curHistoryOrder = curHistoryOrder;
    wx.navigateTo({
      url: '../hisDetail/hisDetail',
    });
  },


  // picker筛选
  _pickerChange: function (e) {
    // 清空订单列表
    this.setData({ orderList: [] });

    const idx = e.detail.value;
    // 更新picker显示
    this.setData({ pickerIndex: idx });
    // 更新filter
    // const number = this.data.filterPicker[idx].value;
    // this._updateFilter('number', number);
    
    // 设置起止时间
    // console.log(formatTime(Date.now()));
    let now = Date.now();
    console.log(now);
    console.log(formatTime(new Date(now)));
    this._updateFilter('create_time_gte', formatTime(new Date(now)));   // 终点时间
    // 更新开始时间
    switch(idx){
      case '0':
        this._updateFilter('create_time_lte', formatTime(new Date(now-2592000000)));  // 1个月
        break;
      case '1':
        this._updateFilter('create_time_lte', formatTime(new Date(now-7776000000)));  // 3个月
        break;
      case '2':
        this._updateFilter('create_time_lte', formatTime(new Date(now-15552000000)));  // 半年
        break;
      case '3':
        this._updateFilter('create_time_lte', formatTime(new Date(now-31104000000)));  // 1年
        break;
    }

    console.log('filter', this.data.filter);

    // 重新搜索
    this._getOrderList();
  },
})